\documentclass[a4paper]{article}

\usepackage[spanish]{babel}
\usepackage[latin1]{inputenc}
\usepackage{bbm}
\usepackage{framed}
\input{macrosAlgo1}

\newcommand{\comen}[2]{%
\begin{framed}	
\noindent \textsf{#1:} #2
\end{framed}
}



\begin{document}

\materia{Algoritmos y Estructura de Datos I}
\cuatrimestre{1}
\anio{2012}

\fecha{30 de Marzo de 2012}

\nombre{\LARGE TPE OJOTA (Organizaci\'on de Juegos Ol\'impicos Tp de Algoritmos 1) v1.0}

\titulotp


\section{Tipos}

\input{tipos/tipos.tex}

\section{Atleta}
\input{tipos/atleta.tex}

\begin{problema}{entrenarNuevoDeporte}{a: Atleta, d: Deporte, c: \ent}{}
\requiere[capacidadEnRango]{0 \leq c \leq 100}
\modifica{a}
\asegura[nombre]{nombre(a)==nombre(pre(a))}
\asegura[sexo]{sexo(a)==sexo(pre(a))}
%\asegura[añoNacimiento]{{a\~{n}oNacimiento}(a)=={a\~{n}oNacimiento}(pre(a))}
\asegura[nacionalidad]{nacionalidad(a)==nacionalidad(pre(a))}
\asegura[ciaNumber]{ciaNumber(a)==ciaNumber(pre(a))}
\asegura[noRepetirDeportes]{ if d \in deportes(pre(a)) then deportes(pre(a))==deportes(a) else mismos(cons(d, deportes(pre(a)))}
\asegura[capacidad]{capacidad(a, d)==if d \in deportes(pre(a)) then capacidad(pre(a), d) else c}
\end{problema}



\section{Competencia}

\input{tipos/competencia.tex}

\begin{problema}{finalizarCompetencia}{c: Competencia, posiciones: [Atleta], control: [(Atleta, \bool)]}{}
\end{problema}

\begin{problema}{linfordChristie}{c: Competencia, a: Atleta}{[Competencia]}{}
\requiere[]{finalizada(c)==false}
\requiere[]{a\in participantes(c)}
\modifica[]{participantes(c)}
\asegura[]{mismos (pre(participantes(c),a:participantes(c))}
\asegura[]{categoria(c)==categoria(pre(c))}
\asegura[]{finalizada(c)==finalizada(pre(c))}
\end{problema}

\begin{problema}{sancionarTramposos}{c: Competencia}{}
\requiere[competenciaFinalizada]{finalizada(c)==true}
\modifica{c}
\asegura[mismaCategoria]{categoria(c)==categoria(pre(c))}
\asegura[mismosParticipantes]{participantes(c)==participantes(pre(c))}
\asegura[yaFinalizada]{finalizada(c)==finalizada(pre(c))}
\asegura[controlados]{lesTocoControlAntiDoping(c)==lesTocoControlAntiDoping(pre(c))}
\asegura[lesDioPositivo]{lesDioPositivo(c, a)==lesDioPositivo(pre(c), a)}
\asegura[eliminarDelRanking]{mismos(concat([x\leftarrow lesTocoControlAntiDoping(c), leDioPositivo(c, x)], ranking(c)), \newline ranking(pre(c)))}
\asegura[reordenada]{ordenadaDeAcuerdoA(ranking(c), ranking(pre(c)))}
\end{problema}

\section{JJOO}
\input{tipos/jjoo.tex}

\begin{problema}{dePaseo}{j: JJOO}{[Atleta]} 
\end{problema}

\section{Auxiliares}

\input{auxiliaresTipos.tex}

\end{document}
